home *** CD-ROM | disk | FTP | other *** search
/ Australian Personal Computer 2004 July / APC0407D2.iso / workshop / onlineco / files / ImageMagick-6.0.1-Q16-windows-dll.exe / {app} / include / magick / hashmap.h < prev    next >
Encoding:
C/C++ Source or Header  |  2004-03-22  |  2.2 KB  |  68 lines

  1. /*
  2.   ImageMagick hash methods.
  3. */
  4. #ifndef _MAGICK_HASHMAP_H
  5. #define _MAGICK_HASHMAP_H
  6.  
  7. #if defined(__cplusplus) || defined(c_plusplus)
  8. extern "C" {
  9. #endif
  10.  
  11. #define SmallHashmapSize  17
  12. #define MediumHashmapSize  701
  13. #define LargeHashmapSize  8191
  14.  
  15. typedef struct _HashmapInfo
  16.   HashmapInfo;
  17.  
  18. typedef struct _LinkedListInfo
  19.   LinkedListInfo;
  20.  
  21. extern MagickExport HashmapInfo
  22.   *NewHashmap(const unsigned long,size_t (*)(const void *),void *(*)(void *),
  23.     void *(*)(void *));
  24.  
  25. extern MagickExport LinkedListInfo
  26.   *NewLinkedList(const unsigned long);
  27.  
  28. extern MagickExport size_t
  29.   HashPointerType(const void *),
  30.   HashStringType(const void *),
  31.   HashStringInfoType(const void *);
  32.  
  33. extern MagickExport unsigned long
  34.   GetNumberOfElementsInLinkedList(const LinkedListInfo *),
  35.   GetNumberOfEntriesInHashmap(const HashmapInfo *);
  36.  
  37. extern MagickExport unsigned int
  38.   AppendElementToLinkedList(LinkedListInfo *,const void *),
  39.   InsertElementInLinkedList(LinkedListInfo *,const unsigned long,const void *),
  40.   InsertElementInSortedLinkedList(LinkedListInfo *,
  41.     int (*)(const void *,const void *),void **,const void *),
  42.   IsHashmapEmpty(const HashmapInfo *),
  43.   IsLinkedListEmpty(const LinkedListInfo *),
  44.   LinkedListToArray(LinkedListInfo *,void **),
  45.   PutEntryInHashmap(HashmapInfo *,const void *,const void *);
  46.  
  47. extern MagickExport void
  48.   ClearLinkedList(LinkedListInfo *,void *(*)(void *)),
  49.   DestroyHashmap(HashmapInfo *),
  50.   DestroyLinkedList(LinkedListInfo *,void *(*)(void *)),
  51.   *GetElementFromLinkedList(const LinkedListInfo *,const unsigned long),
  52.   *GetEntryFromHashmap(const HashmapInfo *,const void *),
  53.   *GetLastElementInLinkedList(const LinkedListInfo *),
  54.   *GetNextElementInLinkedList(LinkedListInfo *),
  55.   *GetNextEntryInHashmap(HashmapInfo *),
  56.   *RemoveElementByValueFromLinkedList(LinkedListInfo *,const void *),
  57.   *RemoveElementFromLinkedList(LinkedListInfo *,const unsigned long),
  58.   *RemoveEntryFromHashmap(HashmapInfo *,const void *),
  59.   *RemoveLastElementFromLinkedList(LinkedListInfo *),
  60.   ResetHashmapIterator(HashmapInfo *),
  61.   ResetLinkedListIterator(LinkedListInfo *);
  62.  
  63. #if defined(__cplusplus) || defined(c_plusplus)
  64. }
  65. #endif
  66.  
  67. #endif
  68.